﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Общ) Предназначено для указания способа регистрации времени разовых начислений и невыходов (целосменный или часовой)
	///</summary>
	[DataContract]
	public enum СпособыРегистрацииВремени
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"a6ff4ec4-4466-4458-8f08-c95934819781\", \"Представление\":\"РегистрацияДляЦелойСмены\"}")]
		РегистрацияДляЦелойСмены = 0,//Целосменная регистрация времени
		[EnumMember(Value = "{\"Ссылка\":\"f232c059-c866-4f48-9cfe-219c7d548664\", \"Представление\":\"РегистрацияДляЧастиСмены\"}")]
		РегистрацияДляЧастиСмены = 1,//Регистрация времени в часах
	}
	public static partial class СпособыРегистрацииВремени_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid РегистрацияДляЦелойСмены = new Guid("59c9088f-8134-8197-4458-4466a6ff4ec4");//Целосменная регистрация времени
		public static readonly Guid РегистрацияДляЧастиСмены = new Guid("9c21fe9c-547d-6486-4f48-c866f232c059");//Регистрация времени в часах
		public static СпособыРегистрацииВремени Получить(this СпособыРегистрацииВремени Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СпособыРегистрацииВремени Получить(this СпособыРегистрацииВремени Значение, Guid Ссылка)
		{
			if(Ссылка == РегистрацияДляЦелойСмены)
			{
				return СпособыРегистрацииВремени.РегистрацияДляЦелойСмены;
			}
			else if(Ссылка == РегистрацияДляЧастиСмены)
			{
				return СпособыРегистрацииВремени.РегистрацияДляЧастиСмены;
			}
			return СпособыРегистрацииВремени.ПустаяСсылка;
		}
		public static byte[] Ключ(this СпособыРегистрацииВремени Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СпособыРегистрацииВремени Значение)
		{
			switch (Значение)
			{
				case СпособыРегистрацииВремени.РегистрацияДляЦелойСмены: return РегистрацияДляЦелойСмены;
				case СпособыРегистрацииВремени.РегистрацияДляЧастиСмены: return РегистрацияДляЧастиСмены;
			}
			return Guid.Empty;
		}
	}
}